Detection of type of object used to provide a touch contact input

ABSTRACT

A signal to be used to propagate a propagating signal through a propagating medium with a touch input surface is sent. The propagating signal has been allowed to propagate through the propagating medium to a plurality of receivers coupled to the propagating medium. A received signal affected by a touch input object contacting the touch input surface is received. At least a portion of the received signal is compared with one or more reference signals of one or more touch input object types.

CROSS REFERENCE TO OTHER APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 14/882,193 entitled DETECTION OF TYPE OF OBJECT USED TO PROVIDEA TOUCH CONTACT INPUT filed Oct. 13, 2015, which is a continuation ofU.S. patent application Ser. No. 13/945,649, now U.S. Pat. No. 9,189,109entitled DETECTION OF TYPE OF OBJECT USED TO PROVIDE A TOUCH CONTACTINPUT filed Jul. 18, 2013, which claims priority to U.S. ProvisionalApplication No. 61/673,103, entitled DETECTION OF NUMBER OF CONTACTPOINTS IN A TOUCH SENSING SYSTEM filed Jul. 18, 2012, all of which areincorporated herein by reference for all purposes.

BACKGROUND OF THE INVENTION

Popularity of devices such as tablet computers and smartphones hasspawned an ecosystem of software applications utilizing touch inputdetection. The ability to reliably and efficiently detect touch inputlocation on a display surface has enabled applications to take advantageof new user interface interaction patterns to offer enhanced applicationusability across a wide range of inexpensive devices. Further enhancedusability may be enabled if it is possible to detect a type of objectthat is providing the touch input. For example, the ability todistinguish between a human finger and a stylus contacting a touchscreenmay be utilized by an application to provide different functionalitybased on the type of object used to provide the touch input. It has beendifficult for prior touch input devices to reliably and inexpensivelydetect a type of object contacting the touch input surface of a device.Therefore, there exists a need for a way to more efficiently detect atype of object used to provide a touch input.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s).

FIG. 9 is a flow chart illustrating an embodiment of a process fordetermining the number of simultaneous touch contacts.

FIG. 10 is a flow chart illustrating an embodiment of a process fordetermining a type of object used to provide a touch contact.

FIG. 11 shows a waveform diagram of an example received/filtered signalthat has been identified with touch contact object types.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Determining a type of object utilized to provide a touch input isdisclosed. In some embodiments, a signal that captures a disturbance(e.g., sound, vibration, etc.) by a touch input object contacting atouch input surface is received. For example, when an object contacts atouch input surface, a sound is generated from the object striking thetouch input surface and the generated sound is captured by a sensorattached to a medium (e.g., glass) of the touch input surface as anacoustic signal. In some embodiments, the received signal is receivedfrom a transducer coupled to a medium of the touch input surface.

At least a portion of the received signal is compared with one or moresignatures of one or more touch input object types. For example, foreach detectable touch input object type, an associated signature ispredetermined (e.g., acoustic signal detected from each sample touchinput object type is captured as an signature of the sample touch inputobject type) and stored in a library of signatures. A type of the touchinput object contacting the touch input surface is determined based atleast in part on the comparison. For example, if at least a portion ofthe received signal matches a predetermined signature corresponding to aparticular touch input object type, the particular touch input objecttype is identified as the type of touch input object contacting thetouch input surface.

FIG. 1 is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance. In some embodiments, thesystem shown in FIG. 1 is included in a kiosk, an ATM, a computingdevice, an entertainment device, a digital signage apparatus, a cellphone, a tablet computer, a point of sale terminal, a food andrestaurant apparatus, a gaming device, a casino game and application, apiece of furniture, a vehicle, an industrial application, a financialapplication, a medical device, an appliance, and any other objects ordevices having surfaces. Propagating signal medium 102 is coupled totransmitters 104, 106, 108, and 110 and sensors 112, 114, 116, and 118.The locations where transmitters 104, 106, 108, and 110 and sensors 112,114, 116, and 118 have been coupled to propagating signal medium 102, asshown in FIG. 1, are merely an example. Other configurations oftransmitter and sensor locations may exist in various embodiments.Although FIG. 1 shows sensors located adjacent to transmitters, sensorsmay be located apart from transmitters in other embodiments. In variousembodiments, the propagating medium includes one or more of thefollowing: panel, table, glass, screen, door, floor, whiteboard,plastic, wood, steel, metal, semiconductor, insulator, conductor, andany medium that is able to propagate an acoustic or ultrasonic signal.For example, medium 102 is glass of a display screen. A first surface ofmedium 102 includes a surface area where a user may touch to provide aselection input and a substantially opposite surface of medium 102 iscoupled to the transmitters and sensors shown in FIG. 1. In variousembodiments, a surface of medium 102 is substantially flat, curved, orcombinations thereof and may be configured in a variety of shapes suchas rectangular, square, oval, circular, trapezoidal, annular, or anycombination of these, and the like.

Propagating signal medium 102 is coupled to sensor 124. For example,sensor 124 is coupled to one surface of propagating signal medium 102and the same or another surface (e.g., opposing surface) of propagatingsignal medium 102 may be configured to receive a touch input. Thelocation of sensor 124 on propagating signal medium 102, as shown inFIG. 1, is merely an example. Other location configurations of sensor124 may exist in various embodiments. Although a single sensor 124 hasbeen shown to simplify the illustration, any number of sensors of thetype of sensor 124 may be included. In some embodiments, sensor 124 is asensor dedicated to detecting a number of touch input contacts receivedon medium 102 and/or a type of object used to contact medium 102 toprovide a touch input, and sensors 112, 114, 116, and 118 are dedicatedto detecting one or more touch locations of the touch input. Forexample, sensors 112, 114, 116, and 118 detect ultrasonic frequencies ofan active signal that has been disturbed by a touch input contact, andsensor 124 detects audible frequencies of a sound caused by a touchinput object striking medium 102. In some embodiments, sensor 124 is oneof a plurality of sensors used to identify a number of touch inputcontacts received on propagating signal medium 102 and/or a type ofobject used to contact medium 102 to provide a touch input. In analternative embodiment, one or more of sensors 112, 114, 116, and 118are used to identify a number of touch input contacts received on medium102 and/or a type of object used to contact medium 102 to provide atouch input. For example, sensor 124 is not utilized and one or more ofsensors 112, 114, 116, and 118 are used to identify a number of touchinput contacts received on medium 102 and/or a type of object used tocontact medium 102 to provide a touch input in addition to being used todetect a location of a touch input.

Acoustic processor 126 receives signal detected by sensor 124. Thereceived signal may be processed by acoustic processor 126 to identify anumber of touch input contacts received on medium 102 and/or a type ofobject used to contact medium 102 to provide a touch input. In someembodiments, the received signal may be processed/filtered to reducenoise. For example, a component of the received signal that is likelynot associated with an acoustic noise of a touch input isfiltered/removed. In order to detect noise, one or more signals fromsensors 112, 114, 116, and 118 may be utilized. In some embodiments,acoustic processor 126 utilizes a database/library of touch input objectwaveform signatures to detect a type of object used to contact medium102. The database may be stored in acoustic processor 126 and/or anexternal database may be utilized. Acoustic processor 126 outputs one ormore identifiers of a number of received touch input contacts and/ortype(s) of object(s) used to provide touch input contact(s) to touchdetector 120 and/or application system 122. For example, the identifiernumber of received touch input contacts may be used by touch detector120 to determine a touch input location for each of the received touchinput contacts and the type of identifier may be used by applicationsystem 122 to provide different application functionality based on thetype of identifier. In an alternative embodiment, the functionality ofacoustic processor 126 is provided by touch detector 120 and acousticprocessor 126 is not utilized. In some embodiments, acoustic processor126 and touch detector 120 are integrated on a same chip.

In some embodiments, acoustic processor 126 may be powered down whenidle, waiting for an appropriate contact event to be detected by sensors112, 114, 116, 118, or 124 and/or touch detector 120. In an examplewhere the touch input surface is the screen of a mobile computingdevice, the device could be in a low power state until an appropriateevent is detected to “wakeup” the device.

Although the example of FIG. 1 shows touch input location detection bydetecting disturbances of an active signal, in an alternativeembodiment, sensor 124 and/or acoustic processor 126 may be utilizedwith other types of touch input location detection technology toidentify a number of touch input contacts received on medium 102 and/ora type of object used to contact medium 102 to provide a touch input.For example, sensor 124 and/or acoustic processor 126 may be utilizedwith capacitive, resistive, Acoustic Pulse Recognition, or SurfaceAcoustic Wave-based touch detection technology. In some embodimentsusing resistive touch technology, a touch input medium is coated withmultiple conductive layers that register touches when physical pressureis applied to the layers to force the layers to make physical contact.In some embodiments using capacitive touch technology, a touch input iscoated with material that can hold an electrical charge sensitive to ahuman finger. By detecting the change in the electrical charge due to atouch input, a touch location of the touch input may be detected. In thecapacitive touch technology example, transmitters 104, 106, 108, and 110and sensors 112, 114, 116, and 118 do not exist and instead medium 102is configured to detect changes in capacitance due to a touch inputcontact. In some embodiments, Acoustic Pulse Recognition includestransducers attached to the edges of a touchscreen glass that pick upthe sound emitted on the glass due to a touch input. In someembodiments, Surface Acoustic Wave-based technology sends ultrasonicwaves in a guided pattern using reflectors on the touch screen to detecta touch.

Examples of transmitters 104, 106, 108, and 110 include piezoelectrictransducers, electromagnetic transducers, transmitters, sensors, and/orany other transmitters and transducers capable of propagating a signalthrough medium 102. Examples of sensors 112, 114, 116, 118, and 124include piezoelectric transducers, electromagnetic transducers, laservibrometer transmitters, and/or any other sensors and transducerscapable of detecting a signal on medium 102. In some embodiments, atransducer is designed to convert acoustic and/or vibrational energy onthe touch input surface to an electronic signal for processing. In someembodiments, the transmitters and sensors shown in FIG. 1 are coupled tomedium 102 in a manner that allows a user's input to be detected in apredetermined region of medium 102. Although four transmitters and foursensors are shown, any number of transmitters and any number of sensorsmay be used in other embodiments. For example, two transmitters andthree sensors may be used. In some embodiments, a single transducer actsas both a transmitter and a sensor. For example, transmitter 104 andsensor 112 represent a single piezoelectric transducer. In the exampleshown, transmitter 104 may propagate a signal through medium 102.Sensors 112, 114, 116, and 118 receive the propagated signal. In anotherembodiment, the transmitters/sensors in FIG. 1 are attached to aflexible cable coupled to medium 102 via an encapsulant and/or gluematerial and/or fasteners.

Touch detector 120 is connected to the transmitters and sensors shown inFIG. 1. In some embodiments, detector 120 includes one or more of thefollowing: an integrated circuit chip, a printed circuit board, aprocessor, and other electrical components and connectors. Detector 120determines and sends a signal to be propagated by transmitters 104, 106,108, and 110. Detector 120 also receives the signal detected by sensors112, 114, 116, and 118. The received signals are processed by detector120 to determine whether a disturbance associated with a user input hasbeen detected at a location on a surface of medium 102 associated withthe disturbance. Detector 120 is in communication with applicationsystem 122. Application system 122 uses information provided by detector120. For example, application system 122 receives from detector 120 acoordinate associated with a user touch input that is used byapplication system 122 to control a software application of applicationsystem 122. In some embodiments, application system 122 includes aprocessor and/or memory/storage. In other embodiments, detector 120 andapplication system 122 are at least in part included/processed in asingle processor. An example of data provided by detector 120 toapplication system 122 includes one or more of the following associatedwith a user indication: a location coordinate of a surface of medium102, a gesture, simultaneous user indications (e.g., multi-touch input),a time, a status, a direction, a velocity, a force magnitude, aproximity magnitude, a pressure, a size, and other measurable or derivedinformation.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input. In some embodiments, touch detector 202 isincluded in touch detector 120 of FIG. 1. In some embodiments, thesystem of FIG. 2 is integrated in an integrated circuit chip. Touchdetector 202 includes system clock 204 that provides a synchronoussystem time source to one or more other components of detector 202.Controller 210 controls data flow and/or commands between microprocessor206, interface 208, DSP engine 220, and signal generator 212. In someembodiments, microprocessor 206 processes instructions and/orcalculations that can be used to program software/firmware and/orprocess data of detector 202. In some embodiments, a memory is coupledto microprocessor 206 and is configured to provide microprocessor 206with instructions. Signal generator 212 generates a signal to be used topropagate a signal such as a signal propagated by transmitter 104 ofFIG. 1. For example, signal generator 212 generates a pseudorandombinary sequence signal. Driver 214 receives the signal from generator212 and drives one or more transmitters, such as transmitters 104, 106,108, and 110 of FIG. 1, to propagate a signal through a medium.

A signal detected from a sensor such as sensor 112 of FIG. 1 is receivedby detector 202 and signal conditioner 216 conditions (e.g., filters)the received analog signal for further processing. For example, signalconditioner 216 receives the signal output by driver 214 and performsecho cancellation of the signal received by signal conditioner 216. Theconditioned signal is converted to a digital signal by analog-to-digitalconverter 218. The converted signal is processed by digital signalprocessor engine 220. For example, DSP engine 220 correlates theconverted signal against a reference signal to determine a time domainsignal that represents a time delay caused by a touch input on apropagated signal. In some embodiments, DSP engine 220 performsdispersion compensation. For example, the time delay signal that resultsfrom correlation is compensated for dispersion in the touch inputsurface medium and translated to a spatial domain signal that representsa physical distance traveled by the propagated signal disturbed by thetouch input. In some embodiments, DSP engine 220 performs base pulsecorrelation. For example, the spatial domain signal is filtered using amatch filter to reduce noise in the signal.

A result of DSP engine 220 may be used by microprocessor 206 todetermine a location associated with a user touch input. For example,microprocessor 206 determines a hypothesis location where a touch inputmay have been received and calculates an expected signal that isexpected to be generated if a touch input was received at the hypothesislocation and the expected signal is compared with a result of DSP engine220 to determine whether a touch input was provided at the hypothesislocation.

Interface 208 provides an interface for microprocessor 206 andcontroller 210 that allows an external component to access and/orcontrol detector 202. For example, interface 208 allows detector 202 tocommunicate with application system 122 of FIG. 1 and provides theapplication system with location information associated with a usertouch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection. In some embodiments, theprocess of FIG. 3 is used at least in part to calibrate and validate thesystem of FIG. 1 and/or the system of FIG. 2. At 302, locations ofsignal transmitters and sensors with respect to a surface aredetermined. For example, locations of transmitters and sensors shown inFIG. 1 are determined with respect to their location on a surface ofmedium 102. In some embodiments, determining the locations includesreceiving location information. In various embodiments, one or more ofthe locations may be fixed and/or variable.

At 304, signal transmitters and sensors are calibrated. In someembodiments, calibrating the transmitter includes calibrating acharacteristic of a signal driver and/or transmitter (e.g., strength).In some embodiments, calibrating the sensor includes calibrating acharacteristic of a sensor (e.g., sensitivity). In some embodiments, thecalibration of 304 is performed to optimize the coverage and improvesignal-to-noise transmission/detection of a signal (e.g., acoustic orultrasonic) to be propagated through a medium and/or a disturbance to bedetected. For example, one or more components of the system of FIG. 1and/or the system of FIG. 2 are tuned to meet a signal-to-noiserequirement. In some embodiments, the calibration of 304 depends on thesize and type of a transmission/propagation medium and geometricconfiguration of the transmitters/sensors. In some embodiments, thecalibration of step 304 includes detecting a failure or aging of atransmitter or sensor. In some embodiments, the calibration of step 304includes cycling the transmitter and/or receiver. For example, toincrease the stability and reliability of a piezoelectric transmitterand/or receiver, a burn-in cycle is performed using a burn-in signal. Insome embodiments, the step of 304 includes configuring at least onesensing device within a vicinity of a predetermined spatial region tocapture an indication associated with a disturbance using the sensingdevice. The disturbance is caused in a selected portion of the inputsignal corresponding to a selection portion of the predetermined spatialregion.

At 306, surface disturbance detection is calibrated. In someembodiments, a test signal is propagated through a medium such as medium102 of FIG. 1 to determine an expected sensed signal when no disturbancehas been applied. In some embodiments, a test signal is propagatedthrough a medium to determine a sensed signal when one or morepredetermined disturbances (e.g., predetermined touch) are applied at apredetermined location. Using the sensed signal, one or more componentsmay be adjusted to calibrate the disturbance detection. In someembodiments, the test signal is used to determine a signal that can belater used to process/filter a detected signal disturbed by a touchinput.

In some embodiments, data determined using one or more steps of FIG. 3is used to determine data (e.g., formula, variable, coefficients, etc.)that can be used to calculate an expected signal that would result whena touch input is provided at a specific location on a touch inputsurface. For example, one or more predetermined test touch disturbancesare applied at one or more specific locations on the touch input surfaceand a test propagating signal that has been disturbed by the test touchdisturbance is used to determine the data (e.g., transmitter/sensorparameters) that is to be used to calculate an expected signal thatwould result when a touch input is provided at the one or more specificlocations.

At 308, a validation of a touch detection system is performed. Forexample, the system of FIG. 1 and/or FIG. 2 is testing usingpredetermined disturbance patterns to determine detection accuracy,detection resolution, multi-touch detection, and/or response time. Ifthe validation fails, the process of FIG. 3 may be at least in partrepeated and/or one or more components may be adjusted before performinganother validation.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input. In some embodiments, the process of FIG. 4is at least in part implemented on touch detector 120 of FIG. 1 and/ortouch detector 202 of FIG. 2.

At 402, a signal that can be used to propagate an active signal througha surface region is sent. In some embodiments, sending the signalincludes driving (e.g., using driver 214 of FIG. 2) a transmitter suchas a transducer (e.g., transmitter 104 of FIG. 1) to propagate an activesignal (e.g., acoustic or ultrasonic mechanical wave) through apropagating medium with the surface region. In some embodiments, thesignal includes a sequence selected to optimize autocorrelation (e.g.,resulting in narrow/short peaks) of the signal. For example, the signalincludes a Zadoff-Chu sequence. In some embodiments, the signal includesa pseudorandom binary sequence with or without modulation. In someembodiments, the propagated signal is an acoustic signal. In someembodiments, the propagated signal is an ultrasonic signal (e.g.,outside the range of human hearing). For example, the propagated signalis a signal above 20 kHz (e.g., within the range between 80 kHz to 100kHz). In other embodiments, the propagated signal may be within therange of human hearing. In some embodiments, by using the active signal,a user input on or near the surface region can be detected by detectingdisturbances in the active signal when it is received by a sensor on thepropagating medium. By using an active signal rather than merelylistening passively for a user touch indication on the surface, othervibrations and disturbances that are not likely associated with a usertouch indication can be more easily discerned/filtered out. In someembodiments, the active signal is used in addition to receiving apassive signal from a user input to determine the user input.

At 404, the active signal that has been disturbed by a disturbance ofthe surface region is received. The disturbance may be associated with auser touch indication. In some embodiments, the disturbance causes theactive signal that is propagating through a medium to be attenuatedand/or delayed. In some embodiments, the disturbance in a selectedportion of the active signal corresponds to a location on the surfacethat has been indicated (e.g., touched) by a user.

At 406, the received signal is processed to at least in part determine alocation associated with the disturbance. In some embodiments, receivingthe received signal and processing the received signal are performed ona periodic interval. For example, the received signal is captured in 5ms intervals and processed. In some embodiments, determining thelocation includes extracting a desired signal from the received signalat least in part by removing or reducing undesired components of thereceived signal such as disturbances caused by extraneous noise andvibrations not useful in detecting a touch input. In some embodiments,determining the location includes processing the received signal andcomparing the processed received signal with a calculated expectedsignal associated with a hypothesis touch contact location to determinewhether a touch contact was received at the hypothesis location of thecalculated expected signal. Multiple comparisons may be performed withvarious expected signals associated with different hypothesis locationsuntil the expected signal that best matches the processed receivedsignal is found and the hypothesis location of the matched expectedsignal is identified as the touch contact location(s) of a touch input.For example, signals received by sensors (e.g., sensors 112, 114, 116,and 118 of FIG. 1) from various transmitters (e.g., transmitters 104,106, 108, and 110 of FIG. 1) are compared with corresponding expectedsignals to determine a touch input location (e.g., single or multi-touchlocations) that minimizes the overall difference between all respectivereceived and expected signals.

The location, in some embodiments, is one or more locations (e.g.,location coordinate(s)) on the surface region where a user has provideda touch contact. In addition to determining the location, one or more ofthe following information associated with the disturbance may bedetermined at 406: a gesture, simultaneous user indications (e.g.,multi-touch input), a time, a status, a direction, a velocity, a forcemagnitude, a proximity magnitude, a pressure, a size, and othermeasurable or derived information. In some embodiments, the location isnot determined at 406 if a location cannot be determined using thereceived signal and/or the disturbance is determined to be notassociated with a user input. Information determined at 406 may beprovided and/or outputted.

Although FIG. 4 shows receiving and processing an active signal that hasbeen disturbed, in some embodiments, a received signal has not beendisturbed by a touch input and the received signal is processed todetermine that a touch input has not been detected. An indication that atouch input has not been detected may be provided/outputted.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface. Insome embodiments, the process of FIG. 5 is included in 406 of FIG. 4.The process of FIG. 5 may be implemented in touch detector 120 of FIG. 1and/or touch detector 202 of FIG. 2. In some embodiments, at least aportion of the process of FIG. 5 is repeated for each combination oftransmitter and sensor pair. For example, for each active signaltransmitted by a transmitter (e.g., transmitted by transmitter 104, 106,108, or 110 of FIG. 1), at least a portion of the process of FIG. 5 isrepeated for each sensor (e.g., sensors 112, 114, 116, and 118 ofFIG. 1) receiving the active signal. In some embodiments, the process ofFIG. 5 is performed periodically (e.g., 5 ms periodic interval).

At 502, a received signal is conditioned. In some embodiments, thereceived signal is a signal including a pseudorandom binary sequencethat has been freely propagated through a medium with a surface that canbe used to receive a user input. For example, the received signal is thesignal that has been received at 404 of FIG. 4. In some embodiments,conditioning the signal includes filtering or otherwise modifying thereceived signal to improve signal quality (e.g., signal-to-noise ratio)for detection of a pseudorandom binary sequence included in the receivedsignal and/or user touch input. In some embodiments, conditioning thereceived signal includes filtering out from the signal extraneous noiseand/or vibrations not likely associated with a user touch indication.

At 504, an analog to digital signal conversion is performed on thesignal that has been conditioned at 502. In various embodiments, anynumber of standard analog to digital signal converters may be used.

At 506, a time domain signal capturing a received signal time delaycaused by a touch input disturbance is determined. In some embodiments,determining the time domain signal includes correlating the receivedsignal (e.g., signal resulting from 504) to locate a time offset in theconverted signal (e.g., perform pseudorandom binary sequencedeconvolution) where a signal portion that likely corresponds to areference signal (e.g., reference pseudorandom binary sequence that hasbeen transmitted through the medium) is located. For example, a resultof the correlation can be plotted as a graph of time within the receivedand converted signal (e.g., time-lag between the signals) vs. a measureof similarity. In some embodiments, performing the correlation includesperforming a plurality of correlations. For example, a coarsecorrelation is first performed then a second level of fine correlationis performed. In some embodiments, a baseline signal that has not beendisturbed by a touch input disturbance is removed in the resulting timedomain signal. For example, a baseline signal (e.g., determined at 306of FIG. 3) representing a measured signal (e.g., a baseline time domainsignal) associated with a received active signal that has not beendisturbed by a touch input disturbance is subtracted from a result ofthe correlation to further isolate effects of the touch inputdisturbance by removing components of the steady state baseline signalnot affected by the touch input disturbance.

At 508, the time domain signal is converted to a spatial domain signal.In some embodiments, converting the time domain signal includesconverting the time domain signal determined at 506 into a spatialdomain signal that translates the time delay represented in the timedomain signal to a distance traveled by the received signal in thepropagating medium due to the touch input disturbance. For example, atime domain signal that can be graphed as time within the received andconverted signal vs. a measure of similarity is converted to a spatialdomain signal that can be graphed as distance traveled in the medium vs.the measure of similarity.

In some embodiments, performing the conversion includes performingdispersion compensation. For example, using a dispersion curvecharacterizing the propagating medium, time values of the time domainsignal are translated to distance values in the spatial domain signal.In some embodiments, a resulting curve of the time domain signalrepresenting a distance likely traveled by the received signal due to atouch input disturbance is narrower than the curve contained in the timedomain signal representing the time delay likely caused by the touchinput disturbance. In some embodiments, the time domain signal isfiltered using a match filter to reduce undesired noise in the signal.For example, using a template signal that represents an ideal shape of aspatial domain signal, the converted spatial domain signal is matchfiltered (e.g., spatial domain signal correlated with the templatesignal) to reduce noise not contained in the bandwidth of the templatesignal. The template signal may be predetermined (e.g., determined at306 of FIG. 3) by applying a sample touch input to a touch input surfaceand measuring a received signal.

At 510, the spatial domain signal is compared with one or more expectedsignals to determine a touch input captured by the received signal. Insome embodiments, comparing the spatial domain signal with the expectedsignal includes generating expected signals that would result if a touchcontact was received at hypothesis locations. For example, a hypothesisset of one or more locations (e.g., single touch or multi-touchlocations) where a touch input might have been received on a touch inputsurface is determined, and an expected spatial domain signal that wouldresult at 508 if touch contacts were received at the hypothesis set oflocation(s) is determined (e.g., determined for a specific transmitterand sensor pair using data measured at 306 of FIG. 3). The expectedspatial domain signal may be compared with the actual spatial signaldetermined at 508. The hypothesis set of one or more locations may beone of a plurality of hypothesis sets of locations (e.g., exhaustive setof possible touch contact locations on a coordinate grid dividing atouch input surface).

The proximity of location(s) of a hypothesis set to the actual touchcontact location(s) captured by the received signal may be proportionalto the degree of similarity between the expected signal of thehypothesis set and the spatial signal determined at 508. In someembodiments, signals received by sensors (e.g., sensors 112, 114, 116,and 118 of FIG. 1) from transmitters (e.g., transmitters 104, 106, 108,and 110 of FIG. 1) are compared with corresponding expected signals foreach sensor/transmitter pair to select a hypothesis set that minimizesthe overall difference between all respective detected and expectedsignals. In some embodiments, once a hypothesis set is selected, anothercomparison between the determined spatial domain signals and one or morenew expected signals associated with finer resolution hypothesis touchlocation(s) (e.g., locations on a new coordinate grid with moreresolution than the coordinate grid used by the selected hypothesis set)near the location(s) of the selected hypothesis set is determined.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input. In some embodiments, the process of FIG. 6 is included in506 of FIG. 5. The process of FIG. 6 may be implemented in touchdetector 120 of FIG. 1 and/or touch detector 202 of FIG. 2.

At 602, a first correlation is performed. In some embodiments,performing the first correlation includes correlating a received signal(e.g., resulting converted signal determined at 504 of FIG. 5) with areference signal. Performing the correlation includes cross-correlatingor determining a convolution (e.g., interferometry) of the convertedsignal with a reference signal to measure the similarity of the twosignals as a time-lag is applied to one of the signals. By performingthe correlation, the location of a portion of the converted signal thatmost corresponds to the reference signal can be located. For example, aresult of the correlation can be plotted as a graph of time within thereceived and converted signal (e.g., time-lag between the signals) vs. ameasure of similarity. The associated time value of the largest value ofthe measure of similarity corresponds to the location where the twosignals most correspond. By comparing this measured time value against areference time value (e.g., at 306 of FIG. 3) not associated with atouch indication disturbance, a time delay/offset or phase differencecaused on the received signal due to a disturbance caused by a touchinput can be determined. In some embodiments, by measuring theamplitude/intensity difference of the received signal at the determinedtime vs. a reference signal, a force associated with a touch indicationmay be determined. In some embodiments, the reference signal isdetermined based at least in part on the signal that was propagatedthrough a medium (e.g., based on a source pseudorandom binary sequencesignal that was propagated). In some embodiments, the reference signalis at least in part determined using information determined duringcalibration at 306 of FIG. 3. The reference signal may be chosen so thatcalculations required to be performed during the correlation may besimplified. For example, the reference signal is a simplified referencesignal that can be used to efficiently correlate the reference signalover a relatively large time difference (e.g., lag-time) between thereceived and converted signal and the reference signal.

At 604, a second correlation is performed based on a result of the firstcorrelation. Performing the second correlation includes correlating(e.g., cross-correlation or convolution similar to step 602) a receivedsignal (e.g., resulting converted signal determined at 504 of FIG. 5)with a second reference signal. The second reference signal is a morecomplex/detailed (e.g., more computationally intensive) reference signalas compared to the first reference signal used in 602. In someembodiments, the second correlation is performed because using thesecond reference signal in 602 may be too computationally intensive forthe time interval required to be correlated in 602. Performing thesecond correlation based on the result of the first correlation includesusing one or more time values determined as a result of the firstcorrelation. For example, using a result of the first correlation, arange of likely time values (e.g., time-lag) that most correlate betweenthe received signal and the first reference signal is determined and thesecond correlation is performed using the second reference signal onlyacross the determined range of time values to fine tune and determinethe time value that most corresponds to where the second referencesignal (and, by association, also the first reference signal) matchedthe received signal. In various embodiments, the first and secondcorrelations have been used to determine a portion within the receivedsignal that corresponds to a disturbance caused by a touch input at alocation on a surface of a propagating medium. In other embodiments, thesecond correlation is optional. For example, only a single correlationstep is performed. Any number of levels of correlations may be performedin other embodiments.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input. In some embodiments, theprocess of FIG. 7 is included in 510 of FIG. 5. The process of FIG. 7may be implemented in touch detector 120 of FIG. 1 and/or touch detector202 of FIG. 2.

At 702, a number of simultaneous touch contacts included in a touchinput is determined. In some embodiments, when detecting a location of atouch contact, the number of simultaneous contacts being made to a touchinput surface (e.g., surface of medium 102 of FIG. 1) is desired to bedetermined. For example, it is desired to determine the number offingers touching a touch input surface (e.g., single touch ormulti-touch). In some embodiments, an identifier of the number ofsimultaneous touch contacts is received from acoustic processor 126 ofFIG. 1. In some embodiments, the number of touch contacts (e.g.,fingers) touching a touch input surface may be determined by “counting”the number of touches/contacts (e.g., determine the number of timesdetected acoustic signal is above a threshold level) detected by anacoustic sensor within a predetermined amount of time. For example, whena user intends to touch a touch input screen with multiple fingers atthe same time, it is rare for the fingers to land on the screen at thesame time. There will likely be a small delay between when the fingersland on the touch surface. The number of impacts (e.g., determined byanalyzing acoustic signal received from sensor 124 of FIG. 1) may bedetermined from determining the number of consecutive touches within arelatively short amount of time (e.g., within a predetermined amount oftime).

At 704, one or more hypothesis sets of one or more touch contactlocations associated with the determined number of simultaneous touchcontacts are determined. In some embodiments, it is desired to determinethe coordinate locations of fingers touching a touch input surface. Insome embodiments, in order to determine the touch contact locations, oneor more hypothesis sets are determined on potential location(s) of touchcontact(s) and each hypothesis set is tested to determine whichhypothesis set is most consistent with a detected data.

In some embodiments, determining the hypothesis set of potential touchcontact locations includes dividing a touch input surface into aconstrained number of points (e.g., divide into a coordinate grid) wherea touch contact may be detected. For example, in order to initiallyconstrain the number of hypothesis sets to be tested, the touch inputsurface is divided into a coordinate grid with relatively large spacingbetween the possible coordinates. Each hypothesis set includes a numberof location identifiers (e.g., location coordinates) that match thenumber determined in 702. For example, if two was determined to be thenumber in 702, each hypothesis set includes two location coordinates onthe determined coordinate grid that correspond to potential locations oftouch contacts of a received touch input. In some embodiments,determining the one or more hypothesis sets includes determiningexhaustive hypothesis sets that exhaustively cover all possible touchcontact location combinations on the determined coordinate grid for thedetermined number of simultaneous touch contacts. In some embodiments, apreviously determined touch contact location(s) of a previous determinedtouch input is initialized as the touch contact location(s) of ahypothesis set.

At 706, a selected hypothesis set is selected among the one or morehypothesis sets of touch contact location(s) as best corresponding totouch contact locations captured by detected signal(s). In someembodiments, one or more propagated active signals (e.g., signaltransmitted at 402 of FIG. 4) that have been disturbed by a touch inputon a touch input surface are received (e.g., received at 404 of FIG. 4)by one or more sensors such as sensors 112, 114, 116, and 118 of FIG. 1.Each active signal transmitted from each transmitter (e.g., differentactive signals each transmitted by transmitters 104, 106, 108, and 110of FIG. 1) is received by each sensor (e.g., sensors 112, 114, 116, and118 of FIG. 1) and may be processed to determine a detected signal(e.g., spatial domain signal determined at 508 of FIG. 5) thatcharacterizes a signal disturbance caused by the touch input. In someembodiments, for each hypothesis set of touch contact location(s), anexpected signal is determined for each signal expected to be received atone or more sensors. The expected signal may be determined using apredetermined function that utilizes one or more predeterminedcoefficients (e.g., coefficient determined for a specific sensor and/ortransmitter transmitting a signal to be received at the sensor) and thecorresponding hypothesis set of touch contact location(s). The expectedsignal(s) may be compared with corresponding detected signal(s) todetermine an indicator of a difference between all the expectedsignal(s) for a specific hypothesis set and the corresponding detectedsignals. By comparing the indicators for each of the one or morehypothesis sets, the selected hypothesis set may be selected (e.g.,hypothesis set with the smallest indicated difference is selected).

At 708, it is determined whether additional optimization is to beperformed. In some embodiments, determining whether additionaloptimization is to be performed includes determining whether any newhypothesis set(s) of touch contact location(s) should be analyzed inorder to attempt to determine a better selected hypothesis set. Forexample, a first execution of step 706 utilizes hypothesis setsdetermined using locations on a larger distance increment coordinategrid overlaid on a touch input surface and additional optimization is tobe performed using new hypothesis sets that include locations from acoordinate grid with smaller distance increments. Additionaloptimizations may be performed any number of times. In some embodiments,the number of times additional optimizations are performed ispredetermined. In some embodiments, the number of times additionaloptimizations are performed is dynamically determined. For example,additional optimizations are performed until a comparison thresholdindicator value for the selected hypothesis set is reached and/or acomparison indicator for the selected hypothesis does not improve by athreshold amount. In some embodiments, for each optimization iteration,optimization may be performed for only a single touch contact locationof the selected hypothesis set and other touch contact locations of theselected hypothesis may be optimized in a subsequent iteration ofoptimization.

If at 708 it is determined that additional optimization should beperformed, at 710, one or more new hypothesis sets of one or more touchcontact locations associated with the number of the touch contacts aredetermined based on the selected hypothesis set. In some embodiments,determining the new hypothesis sets includes determining location points(e.g., more detailed resolution locations on a coordinate grid withsmaller distance increments) near one of the touch contact locations ofthe selected hypothesis set in an attempt to refine the one of the touchcontact locations of the selected hypothesis set. The new hypothesissets may each include one of the newly determined location points, andthe other touch contact location(s), if any, of a new hypothesis set maybe the same locations as the previously selected hypothesis set. In someembodiments, the new hypothesis sets may attempt to refine all touchcontact locations of the selected hypothesis set. The process proceedsback to 706, whether or not a newly selected hypothesis set (e.g., ifpreviously selected hypothesis set still best corresponds to detectedsignal(s), the previously selected hypothesis set is retained as the newselected hypothesis set) is selected among the newly determinedhypothesis sets of touch contact location(s).

If at 708 it is determined that additional optimization should not beperformed, at 714, the selected hypothesis set is indicated as thedetected location(s) of touch contact(s) of the touch input. Forexample, a location coordinate(s) of a touch contact(s) is provided.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s). Insome embodiments, the process of FIG. 8 is included in 706 of FIG. 7.The process of FIG. 8 may be implemented in touch detector 120 of FIG. 1and/or touch detector 202 of FIG. 2.

At 802, for each hypothesis set (e.g., determined at 704 of FIG. 7), anexpected signal that would result if a touch contact was received at thecontact location(s) of the hypothesis set is determined for eachdetected signal and for each touch contact location of the hypothesisset. In some embodiments, determining the expected signal includes usinga function and one or more function coefficients to generate/simulatethe expected signal. The function and/or one or more functioncoefficients may be predetermined (e.g., determined at 306 of FIG. 3)and/or dynamically determined (e.g., determined based on one or moreprovided touch contact locations). In some embodiments, the functionand/or one or more function coefficients may be determined/selectedspecifically for a particular transmitter and/or sensor of a detectedsignal. For example, the expected signal is to be compared to a detectedsignal and the expected signal is generated using a function coefficientdetermined specifically for the pair of transmitter and sensor of thedetected signal. In some embodiments, the function and/or one or morefunction coefficients may be dynamically determined.

In some embodiments, in the event the hypothesis set includes more thanone touch contact location (e.g., multi-touch input), expected signalfor each individual touch contact location is determined separately andcombined together. For example, an expected signal that would result ifa touch contact was provided at a single touch contact location is addedwith other single touch contact expected signals (e.g., effects frommultiple simultaneous touch contacts add linearly) to generate a singleexpected signal that would result if the touch contacts of the addedsignals were provided simultaneously.

In some embodiments, the expected signal for a single touch contact ismodeled as the function:

C*P(x−d)

where C is a function coefficient (e.g., complex coefficient) and P(x)is a function and d is the total path distance between a transmitter(e.g., transmitter of a signal desired to be simulated) to a touch inputlocation and between the touch input location and a sensor (e.g.,receiver of the signal desired to be simulated).

In some embodiments, the expected signal for one or more touch contactsis modeled as the function:

$\sum\limits_{j = 1}^{N}{C_{j}{P( {x - d_{j}} )}}$

where j indicates which touch contact and N is the number of totalsimultaneous touch contacts being modeled (e.g., number of contactsdetermined at 702 of FIG. 7).

At 804, corresponding detected signals are compared with correspondingexpected signals. In some embodiments, the detected signals includespatial domain signals determined at 508 of FIG. 5. In some embodiments,comparing the signals includes determining a mean square error betweenthe signals. In some embodiments, comparing the signals includesdetermining a cost function that indicates the similarly/differencebetween the signals. In some embodiments, the cost function for ahypothesis set (e.g., hypothesis set determined at 704 of FIG. 7)analyzed for a single transmitter/sensor pair is modeled as:

${ɛ( {r_{x},t_{x}} )} = {{{q(x)} - {\sum\limits_{j = 1}^{N}{C_{j}{P( {x - d_{j}} )}}}}}^{2}$

where ε(r_(x),t_(x)) is the cost function, q(x) is the detected signal,and Σ_(j=1) ^(N) C_(j) P (x−d_(j)) is the expected signal. In someembodiments, the global cost function for a hypothesis set analyzed formore than one (e.g., all) transmitter/sensor pair is modeled as:

$ɛ = {\sum\limits_{i = 1}^{Z}{ɛ( {r_{x},t_{x}} )}_{i}}$

where ε is the global cost function, Z is the number of totaltransmitter/sensor pairs, i indicates the particular transmitter/sensorpair, and ε(r_(x),t_(x) is the cost function of the particulartransmitter/sensor pair.

At 806, a selected hypothesis set of touch contact location(s) isselected among the one or more hypothesis sets of touch contactlocation(s) as best corresponding to detected signal(s). In someembodiments, the selected hypothesis set is selected among hypothesissets determined at 704 or 710 of FIG. 7. In some embodiments, selectingthe selected hypothesis set includes determining the global costfunction (e.g., function ε described above) for each hypothesis set inthe group of hypothesis sets and selecting the hypothesis set thatresults in the smallest global cost function value.

FIG. 9 is a flow chart illustrating an embodiment of a process fordetermining the number of simultaneous touch contacts. In someembodiments, the process of FIG. 9 is included in 702 of FIG. 7. Theprocess of FIG. 9 may be implemented on acoustic processor 126 and/ortouch detector 120 of FIG. 1.

At 902, a detected signal is received. The detected signal may be anacoustic signal. In some embodiments, the acoustic signal captures asound/vibration generated due to one or more objects contacting a touchinput surface such as the surface of medium 102 of FIG. 1. In someembodiments, the detected signal is received from sensor 124 of FIG. 1.In some embodiments, the detected signal is received from one or moresensors of sensors 112, 114, 116 and 118. The received signal may be anultrasonic signal. In some embodiments, the detected signal includes thedisturbed active signal received at 404 of FIG. 4.

At 904, the received signal is filtered to reduce noise included in thereceived acoustic signal. In some embodiments, background audio, such ashuman speech or music, could potentially create false contact eventswithout proper filtering and/or pulse qualification. In someembodiments, a rate of spectral change of a portion of the receivedsignal is measured. For example, by exploiting the observation thatbackground noise can be viewed as statistically stationary over the spanof tens of milliseconds, signal portions with a relative lower rate ofspectral change are identified as background noise not capturing a touchcontact event. In some embodiments, a fast Fourier transform of thereceived acoustic signal is determined over a short time extent (e.g.,less than 10 milliseconds). If a signal portion with a slow change isdetected (e.g., below a threshold value), the signal portion is reducedand/or removed to filter the received signal. In some embodiments,filtering the received signal is optional. In some embodiments,filtering the received signal includes removing/reducing one or morecomponents of an active signal included in the received signal. Forexample, a baseline signal (e.g., determined at 306 of FIG. 3)representing a measured signal associated with a received active signalthat has not been disturbed by a touch input disturbance is subtractedfrom the received detected acoustic signal.

At 906, a number of simultaneous (e.g., within a threshold amount oftime) touch contacts captured in the received signal is determined. Insome embodiments, the number of touch contacts (e.g., fingers) touchinga touch input surface may be determined by “counting” the number oftouches/contacts (e.g., determine the number of times detected acousticsignal is above a threshold level) within a predetermined amount oftime. For example, when a user intends to touch a touch input screenwith multiple fingers at the same time, it is rare for the fingers toland on the screen at the same time. There will likely be a small delaybetween when the fingers land on the touch surface. The number ofimpacts (e.g., determined by analyzing acoustic signal received fromsensor 124 of FIG. 1) may be determined from determining the number ofconsecutive touches within a relatively short amount of time (e.g.,within a predetermined amount of time, such as 100 milliseconds). Insome embodiments, determining the number of touch contacts includesdetermining the number of times the energy of the filtered/receivedsignal is above a threshold energy value within a predetermined amountof time. In some embodiments, determining the number of touch contactsincludes determining the number of times a rate of spectral change ofthe filtered/received signal is above a threshold value within apredetermined amount of time. For example, a fast Fourier transform ofthe received acoustic signal is determined to determine the rate ofspectral change.

At 908, the determined number of touch contacts is provided. In someembodiments, the number determined at 906 is provided to a process(e.g., provided at step 702 of FIG. 7) that determines touch contactlocations of a touch input.

FIG. 10 is a flow chart illustrating an embodiment of a process fordetermining a type of object used to provide a touch contact. In someembodiments, the process of FIG. 10 is included in 702 of FIG. 7. Theprocess of FIG. 10 may be implemented on acoustic processor 126 and/ortouch detector 120 of FIG. 1.

At 1002, a detected signal is received. The detected signal may be anacoustic signal. In some embodiments, the acoustic signal captures asound/vibration generated due to one or more objects contacting a touchinput surface such as the surface of medium 102 of FIG. 1. In someembodiments, the detected signal is received from sensor 124 of FIG. 1.In some embodiments, the detected signal is received from one or moresensors of sensors 112, 114, 116 and 118. The received signal may be anultrasonic signal. In some embodiments, the detected signal includes thedisturbed active signal received at 404 of FIG. 4.

At 1004, the received signal is filtered to reduce noise included in thereceived signal. In some embodiments, background audio, such as humanspeech or music, could potentially create false contact events withoutproper filtering. In some embodiments, a rate of spectral change of aportion of the received signal is measured. For example, by exploitingthe observation that background noise can be viewed as statisticallystationary over the span of tens of milliseconds, signal portions with arelative lower rate of spectral change are identified as backgroundnoise not capturing a touch contact event. In some embodiments, a fastFourier transform of the received acoustic signal is determined over ashort time extent (e.g., less than 10 milliseconds). If a signalcomponent with a slow change is detected (e.g., below a thresholdvalue), the signal portion is reduced and/or removed to filter thereceived signal. In some embodiments, filtering the received signal isoptional. In some embodiments, filtering the received signal includesremoving/reducing one or more components of an active signal included inthe received signal. For example, a baseline signal (e.g., determined at306 of FIG. 3) representing a measured signal associated with a receivedactive signal that has not been disturbed by a touch input disturbanceis subtracted from the received detected acoustic signal.

At 1006, a type of object used to provide a touch contact is determined.In some embodiments, determining the type of object includes determiningwhether the touch contact of a touch input was provided using a finger(e.g., which finger), a stylus (e.g., which stylus or tip of stylus), orother detectable object. In some embodiments, determining the type ofobject includes analyzing an energy/signal captured in thereceived/filtered signal due to the touch contact of the object on atouch input surface. In some embodiments, portion(s) of thereceived/filtered signal that are each associated with a touch contactare identified. For example, using at least a portion of the process ofFIG. 9, portion(s) of the received signal corresponding to each touchcontact are identified and for each touch contact a type of object usedto provide the touch contact is determined.

In some embodiments, at least a portion of the received/filtered signalcorresponding to a touch input contact is analyzed to determine whetherit matches a known signature (e.g., acoustic signature waveform) of aknown object type. For example, a finger touching a touch input surfacemay be characterized by a different detected acoustic signature ascompared to a harder object such as a pen or a stylus. A differentwaveform signature associated with each detectable object type may becompared to at least a portion of the received/filtered signal todetermine the type of the object contacting the touch input surface. Insome embodiments, the object type waveform signatures are predeterminedand stored in a dictionary/data structure. For example, for each objecttype desired to be detectable, a sample signal of the object contactinga sample touch input surface is captured and characterized as the objecttype waveform signature of the object. If at least a portion of thereceived/filtered signature matches (e.g., within a thresholddifference) one of the predetermined signatures, an object typeassociated with the matched signature is identified as the object typeof the portion of the received/filtered signal.

In some embodiments, determining the object type of the touch contactincludes feature matching in the time domain by correlating a waveformof at least a portion of the received/filtered signal against a known“dictionary” of waveforms from contact events. In some embodiments,determining the object type of the touch contact includesfrequency-domain matching of at least a portion of the received/filteredsignal against a known “dictionary” of frequency-domain spectra fromcontact events. In some embodiments, determining the object type of thetouch contact includes wavelet-domain matching of at least a portion ofthe received/filtered signal against a known “dictionary” ofwavelet-domain transforms from contact events.

At 1008, the identified touch contact object type is provided. In someembodiments, the type determined at 1006 is provided to an application(e.g., to application system 122) to provide aninteraction/functionality based on the identified object type. In someembodiments, differentiation between a stylus or pen contact versus ahuman finger can be used to initiate different behaviors on a device.For example, detection of a stylus contact may invoke handwritingdetection on an application.

FIG. 11 shows a waveform diagram of an example received/filtered signalthat has been identified with touch contact object types. Waveform 1100shows four touch contacts that have been identified (e.g., using theprocess of FIG. 9) and type identified (e.g., using the process of FIG.10) with the object type that provided the touch contact. As shown inFIG. 11, the waveforms of the fingertip touch contact vs. a metal stylustip touch contact are distinctly different and may be identified usingcorresponding touch input object type acoustic waveform signatures.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:

1. A system, comprising: a signal output interface configured to: sendan output signal to be used to propagate a propagating signal through apropagating medium with a touch input surface, wherein the propagatingsignal has been allowed to propagate through the propagating medium to aplurality of receivers coupled to the propagating medium; and aprocessor configured to: receive a received signal affected by a touchinput object contacting the touch to input surface, wherein the receivedsignal includes a signal portion that corresponds to the propagatingsignal that has been disturbed by the touch input object; compare atleast a portion of the received signal with one or more referencesignals of one or more touch input object types, wherein comparing atleast the portion of the received signal with the one or more referencesignals of the one or more touch input is object types includescomparing with the one or more reference signals of the one or moretouch input object types at least a portion of the signal portion of thereceived signal that corresponds to the propagating signal that has beendisturbed by the touch input object; and determine based at least inpart on the comparison a location of the touch input object contactingthe surface.
 2. The system of claim 1, wherein the received signal wasdetected by a transducer.
 3. The system of claim 1, wherein comparing atleast the portion of the received signal with the one or more referencesignals includes matching in a time domain by correlating the at least aportion of the received signal with one or more waveforms of the one ormore reference signals.
 4. The system of claim 1, wherein comparing atleast the portion of the received signal with the one or more referencesignals includes frequency-domain matching at least a portion of thereceived signal with one or more frequency-domain spectra of the one ormore reference signals.
 5. The system of claim 1, wherein comparing atleast the portion of the received signal with the one or more referencesignals includes wavelet-domain matching at least a portion of thereceived signal with one or more wavelet-domain transforms of the one ormore reference signals.
 6. The system of claim 1, wherein the receivedsignal was detected by converting a detected vibrational energy to thereceived signal.
 7. The system of claim 1, wherein one or morecomponents of the system are powered down while awaiting to receive thereceived signal detected due to the touch input object contacting thetouch input surface.
 8. The system of claim 1, wherein comparing atleast the portion of the received signal with the one or more referencesignals includes comparing a predetermined amount of time of thereceived signal with the one or more reference signals.
 9. The system ofclaim 1, wherein the processor is further configured to filter abackground noise included in the received signal.
 10. The system ofclaim 9, wherein filtering the background noise includes measuring arate of spectral change of at least a portion of the received signal.11. The system of claim 10, wherein measuring the rate of spectralchange includes is computing a fast Fourier transform of at least aportion of the received signal.
 12. The system of claim 1, wherein thereceived signal includes an acoustic signal.
 13. A method, comprising:sending an output signal to be used to propagate a propagating signalthrough a propagating medium with a touch input surface, wherein thepropagating signal has been allowed to propagate through the propagatingmedium to a plurality of receivers coupled to the propagating medium;and receiving a received signal affected by a touch input objectcontacting the touch input surface, wherein the received signal includesa signal portion that corresponds to the propagating signal that hasbeen disturbed by the touch input object; using a processor to compareat least a portion of the received signal with one or more referencesignals of one or more touch input object types, wherein comparing atleast the portion of the received signal with the one or more referencesignals of the one or more touch input object types includes comparingwith the one or more reference signals of the one or more touch inputobject types at least a portion of the signal portion of the receivedsignal that corresponds to the propagating signal that has beendisturbed by the touch input object; and determining based at least inpart on the comparison a location of the touch input object contactingthe surface.
 14. The method of claim 13, wherein the received signal wasdetected by a transducer.
 15. The method of claim 13, wherein comparingat least the portion of the received signal with the one or morereference signals includes matching in a time domain by correlating theat least a portion of the received signal with one or more waveforms ofthe one or more reference signals.
 16. The method of claim 13, whereincomparing at least the portion of the received signal with the one ormore reference signals includes frequency-domain matching at least aportion of to the received signal with one or more frequency-domainspectra of the one or more reference signals.
 17. The method of claim13, wherein comparing at least the portion of the received signal withthe one or more reference signals includes wavelet-domain matching atleast a portion of the received signal with one or more wavelet-domaintransforms of the one or more reference is signals.
 18. The method ofclaim 13, wherein the received signal was detected by converting adetected vibrational energy to the received signal.
 19. The method ofclaim 13, wherein the processor is further configured to filter abackground noise included in the received signal.
 20. A computer programproduct, the computer program product being embodied in a non-transitorycomputer readable storage medium and comprising computer instructionsfor: sending an output signal to be used to propagate a propagatingsignal through a propagating medium with a touch input surface, whereinthe propagating signal has been allowed to propagate through thepropagating medium to a plurality of receivers coupled to thepropagating medium; and receiving a received signal affected by a touchinput object contacting the touch input surface, wherein the receivedsignal includes a signal portion that corresponds to the propagatingsignal that has been disturbed by the touch input object; comparing atleast a portion of the received signal with one or more referencesignals of one or more touch input object types, wherein comparing atleast the portion of the received signal with the one or more referencesignals of the one or more touch input object types includes comparingwith the one or more reference signals of the one or more touch inputobject types at least a portion of the signal portion of the receivedsignal that corresponds to the propagating signal that has beendisturbed by the touch input object; and determining based at least inpart on the comparison a location of the touch input object contactingthe surface.